מדוע אופ טימיזציה נחו צ ה? אופטימיזציה ש ל ש איל תו ת. Query Optimization ארכיטקטורה של אופטימייזר (המשך) סיבוכיות נתו נים Data Complexity

Σχετικά έγγραφα
פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( )

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur

תרגול 1 חזרה טורי פורייה והתמרות אינטגרליות חורף תשע"ב זהויות טריגונומטריות

תרגול פעולות מומצאות 3

שאלה 1 V AB פתרון AB 30 R3 20 R

פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד

שדות תזכורת: פולינום ממעלה 2 או 3 מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה. שקיימים 5 מספרים שלמים שונים , ראשוני. שעבורם

חורף תש''ע פתרון בחינה סופית מועד א'

יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012)

לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור

[ ] Observability, Controllability תרגול 6. ( t) t t קונטרולבילית H למימדים!!) והאובז' דוגמא: x. נשתמש בעובדה ש ) SS rank( S) = rank( עבור מטריצה m

gcd 24,15 = 3 3 =

תרגיל 13 משפטי רול ולגראנז הערות

דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות

סיכום- בעיות מינימוםמקסימום - שאלון 806

ל הזכויות שמורות לדפנה וסטרייך

ניהול תמיכה מערכות שלבים: DFfactor=a-1 DFt=an-1 DFeror=a(n-1) (סכום _ הנתונים ( (מספר _ חזרות ( (מספר _ רמות ( (סכום _ ריבועי _ כל _ הנתונים (

מסדי נתונים רלציונים התצפית של כל משתמש על פי היישום ייצוג הנתונים על פי המודל כטבלאות שמירה בפועל על הדיסק

סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות

לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשע"ו ( ) ... חלק ראשון: שאלות שאינן להגשה נפריד למקרים:

Logic and Set Theory for Comp. Sci.

בסל A רמת התועלת היא: ) - השקה: שיפוע קו תקציב=שיפוע עקומת אדישות. P x P y. U y P y A: 10>6 B: 9>7 A: 5>3 B: 4>3 C: 3=3 C: 8=8 תנאי שני : מגבלת התקציב

Charles Augustin COULOMB ( ) קולון חוק = K F E המרחק סטט-קולון.

= 2. + sin(240 ) = = 3 ( tan(α) = 5 2 = sin(α) = sin(α) = 5. os(α) = + c ot(α) = π)) sin( 60 ) sin( 60 ) sin(

אלגברה לינארית מטריצות מטריצות הפיכות

השאלות..h(k) = k mod m

פתרונות , כך שאי השוויון המבוקש הוא ברור מאליו ולכן גם קודמו תקף ובכך מוכחת המונוטוניות העולה של הסדרה הנתונה.

משוואות רקורסיביות רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים. למשל: יונתן יניב, דוד וייץ

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק

Domain Relational Calculus דוגמאות. {<bn> dn(<dn, bn> likes dn = Yossi )}

לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשע"ו (2016)

תרגיל 7 פונקציות טריגונומטריות הערות

TECHNION Israel Institute of Technology, Faculty of Mechanical Engineering מבוא לבקרה (034040) גליון תרגילי בית מס 5 ציור 1: דיאגרמת הבלוקים

3-9 - a < x < a, a < x < a

I. גבולות. x 0. מתקיים L < ε. lim אם ורק אם. ( x) = 1. lim = 1. lim. x x ( ) הפונקציה נגזרות Δ 0. x Δx

מבני נתונים ויעילות אלגוריתמים

תרגילים באמצעות Q. תרגיל 2 CD,BF,AE הם גבהים במשולש .ABC הקטעים. ABC D נמצאת על המעגל בין A ל- C כך ש-. AD BF ABC FME

התפלגות χ: Analyze. Non parametric test

תרגול מס' 6 פתרון מערכת משוואות ליניארית

שיעור 1. זוויות צמודות

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 315, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן

פתרון תרגיל דוגמא מרחב המדגם הוא כל הקומבינציות של 20 חודשי הולדת. לכל ילד 12 אפשרויות,לכן. לכן -

אלגברה מודרנית פתרון שיעורי בית 6

סדרות - תרגילים הכנה לבגרות 5 יח"ל

אלגוריתמים ללכסון מטריצות ואופרטורים

מתמטיקה בדידה תרגול מס' 12

( )( ) ( ) f : B C היא פונקציה חח"ע ועל מכיוון שהיא מוגדרת ע"י. מכיוון ש f היא פונקציהאז )) 2 ( ( = ) ( ( )) היא פונקציה חח"ע אז ועל פי הגדרת

אלגברה לינארית (1) - פתרון תרגיל 11

תוכן הפרק: ,best case, average case דוגמאות 1. זמן - נמדד באמצעות מס' פעולות סיבוכיות, דוגמאות, שיפור בפקטור קבוע האלגוריתם. וגודלם. איטרטיביים. לקלט.

גבול ורציפות של פונקציה סקלרית שאלות נוספות

Επεξεργασία και βελτιστοποίηση ερωτήσεων

{ : Halts on every input}

Βελτιστοποίηση Ερωτημάτων Κεφ. 14

Κεφάλαιο 9. Επεξεργασία και Βελτιστοποίηση Ερωτήσεων σε Σχεσιακές Βάσεις εδοµένων. Ι.Β -- Εκτέλεση Ερωτήσεων και Βελτιστοποίηση Σελίδα 4.

הגדרה: קבוצת פעילויות חוקית היא קבוצה בה כל שתי פעילויות

x a x n D f (iii) x n a ,Cauchy

אלגברה ליניארית 1 א' פתרון 2

חידה לחימום. כתבו תכappleית מחשב, המקבלת כקלט את M ו- N, מחליטה האם ברצוappleה להיות השחקן הפותח או השחקן השappleי, ותשחק כך שהיא תappleצח תמיד.

(2) מיונים השאלות. .0 left right n 1. void Sort(int A[], int left, int right) { int p;

x = r m r f y = r i r f

מתמטיקה בדידה תרגול מס' 13

תכנון דינאמי. , p p p והמטריצה המתקבלת היא בגודל

אלגברה ליניארית 1 א' פתרון 7

The No Arbitrage Theorem for Factor Models ג'רמי שיף - המחלקה למתמטיקה, אוניברסיטת בר-אילן

מתמטיקה בדידה תרגול מס' 5

הרצאה 7 טרנזיסטור ביפולרי BJT

c ארזים 26 בינואר משפט ברנסייד פתירה. Cl (z) = G / Cent (z) = q b r 2 הצגות ממשיות V = V 0 R C אזי מקבלים הצגה מרוכבת G GL R (V 0 ) GL C (V )

דיאגמת פאזת ברזל פחמן

קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים.

מתכנס בהחלט אם n n=1 a. k=m. k=m a k n n שקטן מאפסילון. אם קח, ניקח את ה- N שאנחנו. sin 2n מתכנס משום ש- n=1 n. ( 1) n 1

צעד ראשון להצטיינות מבוא: קבוצות מיוחדות של מספרים ממשיים

הגדרה: מצבים k -בני-הפרדה

מבני נתונים ואלגוריתמים תרגול #11

אלגברה ליניארית (1) - תרגיל 6

פתרון תרגיל בית 6 מבוא לתורת החבורות סמסטר א תשע ז

ההוצאה תהיה: RTS = ( L B, K B ( L A, K A TC C A L K K 15.03

C.C Ωשרשרת. Eחסומה. E אם לכל x Rb x E

החשמלי השדה הקדמה: (אדום) הוא גוף הטעון במטען q, כאשר גוף B, נכנס אל תוך התחום בו השדה משפיע, השדה מפעיל עליו כוח.

קיום ויחידות פתרונות למשוואות דיפרנציאליות

אלגברה ליניארית 1 א' פתרון 8

כלליים זמן: S מחסנית, top(s) ראש המחסנית. (Depth First Search) For each unmarked DFS(v) / BFS(v) רקורסיבי. אלגוריתם :BFS

לדוגמא : dy dx. xdx = x. cos 1. cos. x dx 2. dx = 2xdx לסיכום: 5 sin 5 1 = + ( ) הוכחה: [ ] ( ) ( )

1 סכום ישר של תת מרחבים

תכנות בשפת C פרק שלישי: בקרת זרימה שייקה בילו יועץ ומרצה בכיר למדעי המחשב וטכנולוגית מידע מומחה למערכות מידע חינוכיות, אקדמיות ומנהליות

%Initialization: Layer(0):={s}; i:=0; %Iterations: While there is an edge (u,v) s.t. u Layer( i)& v. i:=i+1;

f ( x, y) 1 5y axy x xy ye dxdy לדוגמה: axy + + = a ay e 3 2 a e a y ( ) במישור. xy ואז dxdy למישור.xy שבסיסם dxdy וגבהם y) f( x, איור 25.

-107- גיאומטריה זוויות מבוא מטרתנו בפרק זה היא לחזור על המושגים שנלמדו ולהעמיק את הלימוד בנושא זה.

xpy xry & ~yrx xiy xry & yrx

סיכום חקירת משוואות מהמעלה הראשונה ומהמעלה השנייה פרק זה הינו חלק מסיכום כולל לשאלון 005 שנכתב על-ידי מאיר בכור

תאריך עדכון אחרון: 27 בפברואר ניתוח לשיעורין analysis) (amortized הוא טכניקה לניתוח זמן ריצה לסדרת פעולות, אשר מאפשר קבלת

פתרון תרגיל 6 ממשוואות למבנים אלגברה למדעי ההוראה.

פרק 8: עצים. .(Tree) במשפטים הגדרה: גרף ללא מעגלים נקרא יער. דוגמה 8.1: תרגילים: הקודקודים 2 ו- 6 בדוגמה הוא ).

מיון. 1 מיון ערימה (Heapsort) חלק I 1.1 הגדרת ערימה 0.1 הגדרה של המושג מיון מסקנה: הערך הכי גבוה בערימה נמצא בשורש העץ!

תשובות מלאות לבחינת הבגרות במתמטיקה מועד חורף תשע"א, מיום 31/1/2011 שאלון: מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן.

אלגברה רלציונית ניר אדר

(ספר לימוד שאלון )

תורת הגרפים - סימונים

ביטויים רגולריים הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353) הרצאה 5

Layer(0) := {s}; i := 0; While there is an edge (u,v) s.t. u Layer( i)& v Layer( k) i := i+1; R := {s}; while there is an edge (u,v) s.t.

בחינה בסיבוכיות עמר ברקמן, ישי חביב מדבקית ברקוד

Transcript:

אופטימיזציה ש ל ש איל תו ת Query Optimization מדוע אופ טימיזציה נחו צ ה? נתונה שאילתה בגודל m, מהו גודל התוצאה? לדוגמה: יחס n R(A) ומסד נ ת ונים בגודל עם 2 שורות, שבא חת מהן יש את הע רך 0 ובשניה יש א ת הע רך 1 כמה שורות יש ב-? R x R וכמה יש ב-? R x R x R גודל התוצאה יכול להיות ) n O(m 1 2 סיבוכיות נתו נים Data Complexity בדרך כלל שאילתות הנן קטנות ולכן ניתן להניח שגודל השאילתה קבוע לכן, גודל התוצאה הוא ) a,o(m כאשר a הוא קבוע המציין את גודל השאילתה ארכיטקטורה של אופטימייזר Optimizer Architecture data complexity הנו מונח טכני המציין שזמן הריצה של חישוב ש אילתה נמ דד בהנחה שגודל השאילתה ק בוע ורק גודל הנתונים מש תנה מ קלט א חד ל שני Algebraic Space Method-Structure Space Rewriter ner Model Size-Distribution Estimator 3 4 5 ארכיטקטורה של אופטימייזר משכתב :(Rewriter) מוצא שאילתות שקולות שניתן (אולי) לחשב מהר יותר מאשר את השאילתה המקורית (לדוגמה, ע"י החלפת view בהגדרה שלו או ע"י ש כתוב ש איל תת שלא תהיה מקוננת) כל השאילתות הללו מועברות למתכנן SQL כך מתכנן :(ner) בוחן את כל האפשרויות השונות לחישוב השאילתה ובוחר את האפשרות הזולה ביותר (קרי, המהירה ביותר) המתכנן משתמש במודולים האחרים, כדי למצוא את האפשרות הזולה ביותר 6 ארכיטקטורה של אופטימייזר (המשך) מרחב אלגברי Space) :(Algebraic סוגים של ש אילתות ייבדקו קובע איזה לדוגמה, יבדקו השאילתות המתקבלות מכל סדר אפשרי של פעולות הצירוף, אבל אין טעם לבדו ק שאילתה שבה הסדר הנתון כולל צירוף שהוא למעשה מכפלה קרטזית מרחב המבנים והשיטות ) Method-Structure :(Space קובע איזה סוגים של אינדקסים קיימים ובאיזה אלגוריתמים ניתן להשתמש לחישוב הפעולות האלגבריות המופיעות ב שאילתה לדוגמה, איזה אלגוריתמים אפשריים לחישוב צירוף 1

המתכנן (ner) ארכיטקטורה של אופטימייזר (המשך) מו דל המח יר Model) :( מ עריך א ת ה מחיר של חישוב השאילתה לפי כל אחת מהתוכניות משתמש במודול שמעריך את גודל התוצאות מער יך גו ד ל הת וצ אה Size-Distribution ) :(Estimator משתמש בנתונים על גודל היחסים וגודל האינדקסים מעריך את שכיחות הערכים עבור האטריביוטים השונים בעזרת הנ"ל מעריך את גודל תוצאות הביניים משתמשים בתכנות דינמי כדי למצוא את הסדר הזול ביותר של ביצוע צירוף של N יחסים אינטואיציה: לכל יחס בסיס r, מצא את כל הדרכים האפשריות לקריאת r, הערך את המחיר של כל אחת מהדרכים הללו ובחר בדרך הזולה ביותר לכל זוג יחסים, מצא את כל הדרכים האפשריות לביצוע צירוף של שני היחסים, תוך שימוש בדרכים הזולות ביותר שנמצאו בשלב הקודם לקריאת היחסים הללו, ובחר בדרך הזולה ביותר לכל צירוף של 1-k יחסים, מצא את הדרך הזולה ביותר להרחיבו לצירוף של 1-k היחסים הללו ועוד יחס אחד נוסף r בהינתן כל הדרכים לביצוע צירוף של N יחסים, בחר בדרך הזולה ביותר 7 למעשה שומרים בכל שלב לא רק את התוכנית הזולה ביותר, אלא את התוכנית 8 הזולה ביותר לכל סדר מעניין (פרטים בהמשך) השאילתות שבהן נ דון 3 עצים נדו ן באופטימיזציה של שאילתות המורכבות מבחירה, הטלה וצירוף (מכפלה קרטזית היא מקרה מיוחד של צירוף) ניתן להציג שאילות אלה ע"י עץ select name, floor from emp, dept דוגמה של יחסים ושל שאילתה: emp(name, age, sal, dno) dept(dno, dname, floor, mgr, ano) act(ano, type, balance, bno) bank(bno, bname, address) π name, floor σ sal>100k where emp.dno=dept.dno and sal>100k 9 10 π name, floor σ sal>100k σ sal>100k π name, floor π dno, name π name,sal,dno T1 T2 T3 π dno, floor 11 ביצוע פעולות ב חירה וה טלה מוקד ם ככ ל ה אפשר שלושת העצים נבדלים זה מזה באופן שבו מבוצעות פעולות הבחירה וההטלה בעץ T3 פעולות הבחירה וההטלה מבוצעות מוקדם ככל האפשר (maximal pushing of selections and projections) המשכתב מוצא ביטוי שקול לביטוי המקורי שבו פעולות ההטלה והבחירה מבוצעות מוקדם ככל האפשר (הביטוי החדש מחליף את הביטוי המקורי) ביצוע פעולות בחירה והטלה מוקדם ככל האפשר מקטין את תוצאות הביניים מוקדם ככל האפשר ככל שתוצאות הביניים קטנות יותר, המחיר הכולל של חישוב השאילתה הנו תמיד (קרי, בכל תוכנית אפשרית) קטן יותר ביצוע מוקדם ככל האפשר של פעולות בחירה והטלה אינו מייקר אותן 12 ביצוע הטלה ובחירה on the fly פעולות בחירה והטלה מבוצעות כחלק מפעולות אחרות בנוסף, פעולות בחירה והטלה שמופיעות בזו אחר זו מבוצעות ברצף אחד לכן, פעולות בחירה והטלה אינן מצריכו ת כתיבה לדיסק או קריאה מהדיסק פעולות בחירה מבוצעות כאשר היחסים (כולל המקרה של יחסים שהתקבלו כתוצאות ביניים) נקראים לראשונה פעולות הטלה מבוצעות תוך כדי יצירת התוצאות של פעולות קודמות 2

13 מגבלה 1 ע ל המרחב הא לג ברי המרחב האלגברי עשוי לכלול מספר רב של שאילתות שכולן שקולות לשאילתה המקורית חשוב מאוד לצמצם מרחב זה, כדי להקטין את מספר האפשרויות שיש לבדוק מגבלה 1: כוללים במרחב האלגברי רק שאילתות, שבהן פעולות הבחירה וההטלה מבוצעות מוקדם ככל האפשר ומבוצעות on the fly איזה משלושת העצים מקיים מגבלה זו? 14 מגבלה 2 ע ל המרחב הא לג ברי מכיוון שהמיקום של פעולות הבחירה וההטלה נקבע ע"י מגבלה 1, נותר לקבוע את הסדר של פעולות הצירוף (ואפשר לכתוב כל עץ אפשרי רק ע"י ציון מקומן של פעולות צירוף) מגבלה 2: לא מבצעים מכפלות קרטזיות, אלא אם כן הדבר הכרחי (כי בדר"כ מכפלה קרטזית מייצרת תוצאה גדולה ולכן המחיר שלה יקר) דוגמה: select name, floor, balance from emp, dept, acnt where emp.dno=dept.dno and dept.ano = acnt.ano 3 עצים על המרח ב ה אל גברי באיזה עצים יש מכפלה קרטזית? מגבלה 3 T1 T2 T3, dno=dno 15 16 בפעולת צירוף, היחס השמאלי הנו החיצוני relation) (outer והיחס הימני הנו הפנימי relation) (inner מינוח זה מתאים לשיטות של block & index nested-loops joins מגבלה 3: היחס הפנימי הנו יחס מבסיס הנתונים ולא תוצאת ביניים דוגמה: select name, floor, balance from emp, dept, acnt, bank where emp.dno=dept.dno and dept.ano=acnt.ano and acnt.bno = bank.bno 3 עצים איזה עצים מקיימים מגבלה 3? מרחב אלגברי סיכום bno=bno bno=bno BANK BANK bno=bno BANK T1 T2 T3 17 בודקים תוכניות חישוב שבהן 1. פעולות בחירה והטלה מבוצעות מוקדם ככל האפשר וכחלק מפעולות אחרות.2.3 פעולות בחירה מבוצעות תוך כדי קריאת יחסי בסיס פעולות הטלה משולבות יחד עם פעולות בחירה, או מבוצעות תוך כדי יצירת תוצאות ביניים של פעולות צירוף או תוך כדי קריאת יחסי בסיס לא מבצעים מכפלה קרטזית היחס הפנימי בפעולת צירוף הוא תמיד יחס מבסיס הנתונים 18 3

19 הזרמת התוצאה בחלקים לצירוף הבא Joins) (Pipelining נניח שצריך לחשב את הביטוי (Emp Dept) Acnt בעקרון, צריך לחשב את הצירוף Emp Dept ובמהלך החישוב לכתוב את התוצאה ל דיסק בגמר החישוב, צריך לקרוא את התוצאה מהדיסק ולחשב את הצירוף שלה עם היחס Acnt בשיטות של block & index nested-loops joins אפשר לוותר על כתיבת תוצאת הביניים לדיסק Read block from Emp 1 Pipelining Joins - Example Emp Dept Find matching Dept tuples using index Acnt 2 3 Output Find matching Acnt tuples using index Write final output 4 Buffer 20 הסיבה למגבלה 3 עצים שבה ם היחס ה פנימי הוא ת מיד מב סיס הנתונים נקר אים לבצע left-deep trees והם מאפשרים block & index nested-loops join בשיטת ה-,pipeline תוך ניצול מקסימלי של האינדקסים שקיימים עבור היחסים של מסד הנתונים נחסך גם הצורך לכתוב תוצאות ביניים לדיסק והצורך לקרוא אותן שוב בעת ביצוע הפעולה הבא אבל לא בהכרח מובטח שבדרך זו יתקבל החישוב היעיל ביותר תזכורת לגבי אופן הפעולה של שיטת הת כנות הדי נמי כדי לקבוע את התוכנית האופטימלית ל חישוב הצירוף של תת-קבוצה } 4,{R 1, R 2, R 3, R בוחרים את התוכנית האופטימלית מבין האפשרויות הבאות: התוכנית האופטימלית עבור } 4 {R 2, R 3, R כאשר מוסיפים לה בשלב האחרון צירוף עם התוכנית האופטימלית לקריאת R 1 התוכנית האופטימלית עבור } 4 {R 1, R 3, R כאשר מוסיפים לה בשלב האחרון צירוף עם התוכנית האופטימלית לקריאת R 2 התוכנית האופטימלית עבור } 4 {R 2, R 1, R כאשר מוסיפים לה בשלב האחרון צירוף עם התוכנית האופטימלית לקריאת R 3 התוכנית האופטימלית עבור } 1 {R 2, R 3, R כאשר מוסיפים לה בשלב האחרון צירוף עם התוכנית האופטימלית לקריאת R 4 21 22 אב ל לא מספיק ל חשב רק א ת המחיר האופטימ לי לכ ל תת-קבוצה רוצים לחשב: (R(A,B) S(B,C)) T(B,D) יתכן ש- sort-merge join של R ו- S אינו היעיל ביותר, אבל הוא מייצר תוצאה ש מ מוינת על B אם גם T ממוין על B, אז הצירוף של התוצאה הנ"ל עם T (בשיטת ה- (sort-merge join עד כ די כ ך, שה מחיר ה כולל הוא הזול ביותר זול סדר מעניין Interesting Orders כאמור, יש שיטות שבהן המחיר קטן יותר אם היחסים (או אחד מהם) ממוינים מראש על האטריביוטים של הצירוף (למשל, בשיטה של (sort-merge join כשמחשבים את המחיר של צירוף k יחסים, צריך לחשב גם מחיר של תוכניות שאינן הזולות ביותר, אם הן מייצרות תוצאה שהיא כבר ממוינת והמיו ן עשוי להועיל לביצוע צירוף בהמשך סדר מעניין order) (interesting פירושו תוצאה שהיא כבר ממוינת בצורה שעשויה לעזור בהמשך לכל סדר מעניין, שומרים את התוכנית הזולה ביותר אם לתוכנית הזולה ביותר (מתוך כלל התוכניות) אין סדר מעניין (קרי, אין מיו ן שיכול להועיל בהמשך), אז שומרים גם אותה 23 24 4

הערה במקרה של היחסים ששייכים למסד, סדר מעניין כולל גם כל תוכנית שמביאה את הרשומות של היחס לפי אינדקס (אפילו אינדקס ערבול, שאינו מאפשר לייצר תוצאה ממוינת), כי יתכן שבהמ שך חישוב של צירוף כל שהו יהיה היעיל ביותר אם שיטת ה- index nested-loops תעשה שימוש באינדקס זה לגבי יחסים שהם תוצאות ביניים, יתכן שיש תוכניות שמייצרות אותם ממוינים, אבל אין אפשרות לייצר אותם יחד עם אינדקס 25 דוגמה רוצים לחשב את השאילתה select name, mgr from emp, dept where emp.dno=dept.dno and sal>30k and floor = 2 Indexes: B+tree index on emp.sal, B+tree index on emp.dno, hashing index on dept.floor Join Methods: Block and index nested-loops, and sortmerge מחירי החישוב המופיעים בדוגמה נקבעו באופן שרירותי 26 Relation emp dept Step 1 Accessing Single Relations Interesting Order emp.dno (apply sal>30k) (apply floor=2) Access through B+tree on emp.dno Access through B+tree on emp.sal Sequential scan Access through hashing on dept.floor Sequential scan 700 200 600 50 200 איזה הטלות מבצעים בשלב זה? איזה תוכניות מייצרות סדר מעניין ומה שומרים לשלב הבא? 27 Join Method nested loops Step 2 Joining 2 Relations The cost includes the cost from the previous step Outer/Inner emp/dept Actually, no need to consider the second plan, since accessing emp through B+tree on emp.dno is neither For each emp tuple obtained through B+Tree on emp.sal, scan dept through hashing index on dept.floor to find tuples matching on dno For each emp tuple obtained through B+Tree on emp.dno and satisfying selection, scan dept through hashing index on dept.floor to find tuples matching on dno 1800 3000 an interesting order nor the cheapest way of accessing emp 28 Step 2 Joining 2 Relations Step 2 Joining 2 Relations Join Method nested loops Outer/Inner dept/emp Note that for the second plan, accessing emp through B+tree on emp.dno is an interesting order, For each dept tuple obtained through hashing index on dept.floor, scan emp through B+Tree on emp.sal to find tuples matching on dno 2500 Join Method sort merge Outer/ Inner Note that the second plan uses the interesting order of emp on dno For each dept tuple obtained through 1500 Sort on dno the dept tuples resulting from 2000 hashing index on dept.floor, scan emp accessing the hashing index on dept.floor through B+Tree on emp.dno to find into L2 tuples satisfying the selection on Merge L2 and the emp tuples resulting emp.sal from accessing the B+Tree on emp.dno since the method of index nested-loops uses this index and satisfying the selection on emp.sal 29 30 Sort on dno the emp tuples resulting from accessing the B+Tree on emp.sal into L1 Sort on dno the dept tuples resulting from accessing the hashing index on dept.floor into L2 Merge L1 and L2 2300 5

התוכנית הנ בחרת מהי התוכנית הנבחרת? האלגוריתם למציאת החישוב היעיל ביותר הוא מעריכי (אקספוננציאלי) במספר היחסים בשאילתה אבל בדרך כלל מספר היחסים בשאילתה טיפוסית אינו עולה על 10 וזמן הריצה של הא לגוריתם קטן בהשוואה לזמן החישוב של השאילתה (כי האלגוריתם פועל בזיכרון הפנימי) למעשה יש מערכות שמגבילות את מספר היחסים בשאילתה, כי קשה למצוא חישוב יעיל של שאילתה עם מספר רב של יחסים מודל המחיר Model בהרצאה קוד מת ה ראנו איך לח שב את ה מחיר של כל שיטה כדי לעשות זא ת צריך ל דעת את גו דל היחסים, שחל קם מת קבלי ם כ תוצאות ביניים לפיכך, יש צורך לחשב את הגודל של תוצאות ביניים עכשיו נסביר איך מע ריכים את גוד ל התוצאה 31 32 בחיר ת ת ו כנית לחי שו ב צי רוף של של ושה יחס י ם Estimating Result Sizes רוצים לחשב צירוף של שלושת היחסים: Sailors, Reserves ו- Boats שתי האפשרויות המקיימות את המגבלות שהוזכרו קודם (תוך התעלמות מסדר היחסים בפעולת הצירוף הראשונה) הנן: (Sailors Reserves) Boats (Reserves Boats) Sailors ההחלטה מהי התוכנית הזולה יותר תלויה בין היתר בשאלה איזה תוצאת ביניים הנה קטנה יותר 33 34 אנ ליזה ש ל ג וד ל התו צאו ת צריך להעריך את גודל התוצ אה ש ל הצירוף Reserves) (Sailors לעומת גודל התוצאה של הצירוף Boats) (Reserves ה- DBMS שומר סטטיסטיקות לגבי היחסים והאינדקסים סטטיסטיקות אלה מעודכנות מפעם לפעם, אבל לא בכל פעם שמעדכנים את מסד הנתונים 35 Statistics Maintained by DBMS Cardinality: Number of tuples NTuples(R) in each relation R Size: Number of pages NPages(R) in each relation R Index Cardinality: Number of distinct key values NKeys(I) for each index I Index Size: Number of pages INPages(I) in each index I Index Height: Number of non-leaf levels IHeight(I) in each B+ Tree index I Index Range: The minimum value ILow(I) and maximum value IHigh(I) for each index I 36 6

Estimating Result Sizes Consider SELECT attribute-list FROM relation-list WHERE term 1 and... and term n The maximum number of tuples is the product of the cardinalities of the relations in the FROM clause The WHERE clause associates a reduction factor with each term Estimated result size is: maximum size times the product of the reduction factors 37 Estimating Reduction Factors column = value: 1/NKeys(I) if there is an index I on column. This assumes a uniform distribution. Otherwise, System R assumes 1/10. column1 = column2: 1/Max(NKeys(I1),NKeys(I2)) if there is an index I1 on column1 and index I2 on column2. If only one column has an index, we use it to estimate the value. Otherwise, use 1/10. column > value: (High(I)-value)/(High(I)-Low(I)) if there is an index I on column. 38 Example SELECT * FROM Reserves R, Sailors S WHERE R.sid = S.sid and S.rating > 3 and R.agent = Joe Cardinality(R) = 1,000 * 100 = 100,000 Cardinality(S) = 500 * 80 = 40,000 NKeys(Index on R.agent) = 100 High(Index on Rating) = 10, Low = 0 39 Example (cont.) Maximum cardinality: 100,000 * 40,000 Reduction factor of R.sid = S.sid: 1/40,000 sid is a primary key of S Reduction factor of S.rating > 3: (103)/(10-0) = 7/10 Reduction factor of R.agent = Joe : 1/100 Total Estimated size: 700 40 7